home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga2 / romsrc / sys / basic4_asm < prev    next >
Text File  |  2000-01-03  |  3KB  |  161 lines

  1. */beginfile BASIC4_asm
  2. ; --------------------------------------------------------------
  3. ; BASIC4_asm - BASIC bits
  4. ;        - last modified 27/08/95
  5. ; QDOS-Amiga sources by Rainer Kowallik
  6. ;    ...some changes by Mark J Swift
  7. ; --------------------------------------------------------------
  8. L072C2:
  9. BP_LET:
  10.     MOVEM.L    D4/A0/A3-A5,-(A7)
  11.     MOVE.B    1(A6,A3.L),D0
  12.     ANDI.B    #$0F,D0
  13.     SUBQ.B    #2,D0
  14.     BGT.S    L072EE
  15.     BEQ.S    L072F8
  16.     CMPI.B    #$03,0(A6,A3.L)
  17.     BEQ.S    L072E4
  18.     ADDQ.B    #2,D0
  19.     BGT.S    L07350
  20.     BRA    L07396
  21. L072E4    ADDQ.B    #2,D0
  22.     BGT    L073B4
  23.     BRA    L073BE
  24. L072EE    MOVEQ    #$02,D1
  25.     BSR.S    L07308
  26.     ADD.L    D1,BV_RIP(A6)    ;arith stack
  27.     BRA.S    L07330
  28. L072F8    MOVEQ    #$06,D1
  29.     BSR.S    L07308
  30.     MOVE.L    2(A6,A1.L),$02(A6,A0.L)
  31.     ADD.L    D1,BV_RIP(A6)    ;arith stack
  32.     BRA.S    L07330
  33. L07308    MOVE.L    4(A6,A3.L),D4
  34.     BGE.S    L07310
  35.     BSR.S    L07338
  36. L07310    MOVEA.L    BV_VVBAS(A6),A0    ;variable values
  37.     ADDA.L    D4,A0
  38.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  39.     MOVE.W    0(A6,A1.L),0(A6,A0.L)
  40. L07320    MOVEQ    #1,D0
  41.     SUB.B    0(A6,A3.L),D0
  42.     BLT.S    L07334
  43.     MOVE.B    #2,0(A6,A3.L)
  44.     BRA.S    L07334
  45. L07330    MOVEM.L    (A7)+,D4/A0/A3-A5
  46. L07334    MOVEQ    #0,D0
  47.     RTS
  48. L07338    MOVEM.L    A2-A3,-(A7)
  49.     JSR    L04DF6(PC)    ;*/undomodify BSR L04DF6
  50.     MOVEM.L    (A7)+,A2-A3
  51.     MOVE.L    A0,D4
  52.     SUB.L    BV_VVBAS(A6),D4    ;variable values
  53.     MOVE.L    D4,4(A6,A3.L)
  54.     RTS
  55. L07350    BSR.S    L073C6
  56.     ANDI.L    #$0000FFFF,D1
  57.     MOVE.L    $04(A6,A3.L),D4
  58.     BLT.S    L07382
  59.     MOVEA.L    BV_VVBAS(A6),A0    ;variable values
  60.     ADDA.L    D4,A0
  61.     MOVEQ    #$01,D2
  62.     ADD.W    0(A6,A0.L),D2
  63.     BCLR    #0,D2
  64.     CMP.W    D1,D2
  65.     BEQ.S    L07388
  66.     ADDQ.L    #2,D2
  67.     MOVEM.L    D1/A1/A3,-(A7)
  68.     MOVE.L    D2,D1
  69.     JSR    L04FE8(PC)    ;*/undomodify BSR L04FE8
  70.     MOVEM.L    (A7)+,D1/A1/A3
  71. L07382    ADDQ.L    #2,D1
  72.     BSR.S    L07338
  73.     SUBQ.L    #2,D1
  74. L07388    BSR.S    L073DE
  75.     BSR.S    L073EC
  76.     MOVEQ    #0,D0
  77.     MOVEQ    #0,D2
  78.     BSR.S    L07400
  79.     BSR.S    L07320
  80. L07394    BRA.S    L07330
  81. L07396    MOVE.B    #1,1(A6,A3.L)
  82.     BSR.S    L073C6
  83.     SUBQ.W    #1,D5
  84.     ADDQ.W    #2,A2
  85.     ADDA.W    D5,A2
  86.     MOVEA.L    A2,A0
  87.     SUB.W    D5,D6
  88.     MOVE.W    D6,D2
  89.     BSR    L0743C
  90.     ADDQ.W    #2,A1
  91. L073B0    BSR.S    L07400
  92.     BRA.S    L07394
  93. L073B4    BSR.S    L073C6
  94.     BSR.S    L0742C
  95.     BSR.S    L073DE
  96.     BSR.S    L073EC
  97.     BRA.S    L073B0
  98. L073BE    BSR.S    L073C6
  99.     BSR.S    L0742C
  100.     BSR.S    L073DE
  101.     BRA.S    L073B0
  102. L073C6    MOVEA.L    BV_RIP(A6),A1    ;arith stack
  103.     MOVEQ    #0,D1
  104.     MOVE.W    0(A6,A1.L),D1
  105.     MOVE.W    D1,D0
  106.     SWAP    D1
  107.     MOVE.W    D0,D1
  108.     ADDQ.W    #1,D1
  109.     BCLR    #0,D1
  110.     RTS
  111. L073DE    MOVEA.L    BV_VVBAS(A6),A0    ;variable values
  112.     ADDA.L    D4,A0
  113.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  114.     ADDQ.W    #2,A1
  115.     RTS
  116. L073EC    MOVE.W    -$02(A6,A1.L),0(A6,A0.L)
  117.     CMP.W    0(A6,A0.L),D1
  118.     BCC.S    L073FC
  119.     MOVE.W    D1,0(A6,A0.L)
  120. L073FC    ADDQ.W    #2,A0
  121.     RTS
  122. L07400    TST.W    D1
  123. L07402    BEQ.S    L07412
  124.     MOVE.B    0(A6,A1.L),0(A6,A0.L)
  125.     ADDQ.W    #1,A0
  126.     ADDQ.W    #1,A1
  127.     SUBQ.W    #1,D1
  128.     BRA.S    L07402
  129. L07412    TST.W    D2
  130. L07414    BEQ.S    L07422
  131.     MOVE.B    #$20,0(A6,A0.L)
  132.     ADDQ.W    #1,A0
  133.     SUBQ.W    #1,D2
  134.     BRA.S    L07414
  135. L07422    ADDA.W    D0,A1
  136.     MOVE.L    A1,BV_RIP(A6)    ;arith stack
  137.     MOVEQ    #0,D0
  138.     RTS
  139. L0742C    MOVEA.L    4(A6,A3.L),A0
  140.     ADDA.L    BV_VVBAS(A6),A0    ;variable values
  141.     MOVE.W    6(A6,A0.L),D2
  142.     MOVE.L    0(A6,A0.L),D4
  143. L0743C    MOVE.W    D1,D0
  144.     SWAP    D1
  145.     CMP.W    D2,D1
  146.     BHI.S    L0744A
  147.     SUB.W    D1,D2
  148.     SUB.W    D1,D0
  149.     RTS
  150. L0744A    MOVE.W    D2,D1
  151.     SUB.W    D2,D0
  152.     MOVEQ    #0,D2
  153.     RTS
  154. L07452    MOVE.B    1(A6,A3.L),D5
  155.     LSR.B    #4,D5
  156.     ANDI.B    #$0F,1(A6,A3.L)
  157.     ADDQ.W    #8,A3
  158.     RTS
  159. ; --------------------------------------------------------------
  160. ;*/endfile
  161.